package com.model;

/**
 * 这是一个游戏的背景
 * @author Administrator
 *
 */
public class ListBg {
	
	private static ListBg listBg=null;
	//背景的宽
	private int kuan=500;
	//背景的高
	private int gao=300;
	//格子的大小
	private int gezi=20;
	//背景数据的
	private int[][] bg=null;
	
	//构造方法为私有的，防止外部初始化
	private ListBg() {
		//内部初始化，让所有的数据清零
		bg=new int[gao/gezi][kuan/gezi];
	}
	
	
	//获得一个游戏背景的对象
	public static ListBg getListBg(){
		if(listBg==null){
			listBg=new ListBg();
		}
		return listBg;
	}
	
	
	//让下落的方块变为背景的一部分
	public void updateBg(Shape shape){
		//将一个俄罗斯方块中的小格子变换到背景的对象中，让多个格子永久显示 
		for(int i=0;i<bg.length;i++){
			for(int j=0;j<bg[i].length;j++){
				//判断背景格子的坐标和方块格子的坐标是不是在一个坐标，是的话将背景的坐标的值变为1
				boolean flag=false;
				for(int k=0;k<shape.getShapes().length;k++){
					if(shape.getShapes()[k][0]==i && shape.getShapes()[k][1]==j){
						flag=true;
					}
				}
				//判断将对应的背景格子的数值改变
				if(flag){
					bg[i][j]=1;
				}
				
			}
		}
	}


	
	public int[][] getBg() {
		return bg;
	}


	public void setBg(int[][] bg) {
		this.bg = bg;
	}


	public int getKuan() {
		return kuan;
	}


	public void setKuan(int kuan) {
		this.kuan = kuan;
	}


	public int getGao() {
		return gao;
	}


	public void setGao(int gao) {
		this.gao = gao;
	}


	public int getGezi() {
		return gezi;
	}


	public void setGezi(int gezi) {
		this.gezi = gezi;
	}
	
	
	
	
}
